home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 25-02 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 25-02 (19xx)(Nordlicht)(DE)(PD).adf / Kreuzweg / kreuzweg / kreuzweg.amosSourceCode < prev    next >
AMOS Source Code  |  1993-02-04  |  18KB  |  705 lines

  1. ' *************************
  2. ' *    Version 26.1.92    *  
  3. ' *          25er         *
  4. ' *************************
  5. '
  6. Hide 
  7. Screen Open 0,640,256,16,Hires
  8. Unpack 6 To 0
  9. Repeat 
  10. Until Mouse Key
  11. Screen Close 0
  12. Screen Open 1,320,256,32,Lowres
  13. If Exist("df1:Kreuzweg/check")
  14.    Dir$="df1:Kreuzweg/"
  15. Else 
  16.    Dir$="df0:Kreuzweg/"
  17. End If 
  18. Unpack 5 To 1
  19. Show 
  20. '
  21. Dim ANZAHL(11),ZEIGEFLAG(11),NORD(31),OST(31),SUED(31),WEST(31),GESETZTFLAG(46)
  22. Dim OFFEN(3,4)
  23. Global ANZAHL(),ZEIGEFLAG(),NORD(),OST(),SUED(),WEST(),GESETZTFLAG(),PASSEN
  24. Global NUMMER,LEVEL,GELOEST,OK,KONTROLLZAEHLER,AUS_STREET,LOESEFLAG,MENGE,GEHT
  25. Global OFFEN()
  26. INITIAL
  27. '
  28. '................................... 
  29. '.          HAUPTPROGRAMM          . 
  30. '................................... 
  31. '
  32. LEVEL=1
  33. MENGE=25
  34. Curs Off 
  35. Flash Off 
  36. Double Buffer 
  37. Autoback 0
  38. Update Off 
  39. '
  40. EINLESEN
  41. LOSUNG[EINGABE$]
  42. '
  43. HAUPT:
  44. Repeat 
  45.    GEHT=0
  46.    If GELOEST=-1
  47.       DUM=Free
  48.       Shoot 
  49.       GRATULATION
  50.       NEUER_VERSUCH
  51.       EINLESEN
  52.       LOSUNG[EINGABE$]
  53.       If LEVEL=6 or LEVEL=11 or LEVEL=16 or LEVEL=21
  54.          LESEN=0
  55.       End If 
  56.       UNDO_STREET=0
  57.       GELOEST=0
  58.       BEGINN=0
  59.    End If 
  60.    If LEVEL<6 and LESEN=0
  61.       Load "streets.abk"
  62.       LESEN=-1
  63.    End If 
  64.    If LEVEL>5 and LEVEL<11 and LESEN=0
  65.       Load "city.abk"
  66.       LESEN=-1
  67.    End If 
  68.    If LEVEL>10 and LEVEL<16 and LESEN=0
  69.       Load "fluss.abk"
  70.       LESEN=-1
  71.    End If 
  72.    If LEVEL>15 and LEVEL<21 and LESEN=0
  73.       Load "color.abk"
  74.       LESEN=-1
  75.    End If 
  76.    If LEVEL>20 and LEVEL<26 and LESEN=0
  77.       Load "spiel.abk"
  78.       LESEN=-1
  79.    End If 
  80.    Z=Mouse Zone
  81.    '
  82.    If Z=44 and BEGINN=0 and Mouse Key
  83.       Bell 
  84.       PASSWORD
  85.       If Param=-1
  86.          EINLESEN
  87.          LESEN=0
  88.       End If 
  89.    End If 
  90.    '
  91.    If Z=45 and BEGINN=0 and Mouse Key
  92.       INFO
  93.    End If 
  94.    '
  95.    If Z>30 and Z<44 and Mouse Key
  96.       BEGINN=-1
  97.       If Z<42
  98.          STREET=Z-30
  99.          Screen Swap : DRUECKEN[29,19,-11+(19*STREET),5+(19*STREET),198,214]
  100.          Screen Swap : DRUECKEN[29,19,-11+(19*STREET),5+(19*STREET),198,214]
  101.       End If 
  102.       If Z=42
  103.          Goto WEITER
  104.       End If 
  105.       If Z=43
  106.          Goto UNDO
  107.       End If 
  108.       If ANZAHL(STREET)>0
  109.          Bell 
  110.          WERT_NEHMEN[Z]
  111.          Dec ANZAHL(STREET) : AUSGABE : LOESEN
  112.          Inc NUMMER
  113.          Hot Spot STREET,$11
  114.          SCHLEIFE:
  115.          Do 
  116.             Z=Mouse Zone
  117.             Screen Swap : Wait Vbl : Bob Clear 
  118.             Bob NUMMER,X Screen(X Mouse),Y Screen(Y Mouse),STREET
  119.             Bob Draw 
  120.             Screen Swap : Wait Vbl : Bob Clear 
  121.             Bob NUMMER,X Screen(X Mouse),Y Screen(Y Mouse),STREET
  122.             Bob Draw 
  123.             If Z=42 and Mouse Key
  124.                Goto WEITER
  125.             End If 
  126.             If Z>0 and Z<31 and GESETZTFLAG(Z)=0 and Mouse Key
  127.                PRUEF=Z
  128.                PRUEFEN[Z]
  129.                Exit If OK=2 or GEHT=0
  130.                Hot Spot STREET,$0
  131.                I=Abs(Z/6)
  132.                J=Z-(I*6)
  133.                If J=0
  134.                   J=6 : I=I-1
  135.                End If 
  136.                X=-25+(34*J) : Y=20+(34*I)
  137.                Screen Swap : Wait Vbl : Bob Clear 
  138.                Bob NUMMER,X,Y,STREET : Bob Draw 
  139.                Screen Swap : Wait Vbl : Bob Clear 
  140.                Bob NUMMER,X,Y,STREET : Bob Draw 
  141.                GESETZTFLAG(Z)=-1
  142.                WERT_GEBEN[Z]
  143.                OK=0
  144.                ENTFERNT=Z
  145.                ERLAUBT=-1
  146.                UNDO_STREET=STREET
  147.                Exit 
  148.             End If 
  149.          Loop 
  150.       Else 
  151.          Wave 0 To %1100 : Play 46,0
  152.          Goto HAUPT
  153.       End If 
  154.       '
  155.       If OK<>0 or GEHT=0
  156.          Bell 
  157.          WERTE_ZURUECK[Z]
  158.          Goto SCHLEIFE
  159.       End If 
  160.       '
  161.       WEITER:
  162.       OK=0
  163.       KONTROLLZAEHLER=0
  164.       If Z=42 and Mouse Key
  165.          NOCHMAL_VON_VORN
  166.       End If 
  167.       '
  168.       UNDO:
  169.       If Z=43 and ERLAUBT=-1 and Mouse Key
  170.          ZULETZT_ERNEUT[ENTFERNT,UNDO_STREET]
  171.          ERLAUBT=0
  172.       End If 
  173.       '
  174.    End If 
  175.    If STREET>0
  176.       Screen Swap : DRUECKEN[19,29,-11+(19*STREET),5+(19*STREET),198,214]
  177.       Screen Swap : DRUECKEN[19,29,-11+(19*STREET),5+(19*STREET),198,214]
  178.    End If 
  179.    If LEVEL>MENGE and GELOEST=-1
  180.       SPIELENDE=-1
  181.       Exit 
  182.    End If 
  183. Until Z=46 and Mouse Key
  184. '
  185. If SPIELENDE=0
  186.    SICHERHEITSABFRAGE
  187.    If Param=2
  188.       Goto HAUPT
  189.    End If 
  190. End If 
  191. Erase 1
  192. Screen Swap : Locate ,30 : Centre "Game over"
  193. Screen Swap : Locate ,30 : Centre "Game over"
  194. Wait 200
  195. Screen Close 1
  196. Edit 
  197. '
  198. ' ------------------------------ 
  199. ' |         ROUTINEN           | 
  200. ' ------------------------------ 
  201. '
  202. Procedure INITIAL
  203.    Reserve Zone 46
  204.    For I=1 To 5
  205.       For J=1 To 6
  206.          Inc Z
  207.          Set Zone Z,-25+(34*J),-14+(34*I) To 7+(34*J),18+(34*I)
  208.       Next J
  209.    Next I
  210.    For I=1 To 11
  211.       Inc Z
  212.       Set Zone Z,-10+(19*I),199 To 5+(19*I),214
  213.    Next I
  214.    Set Zone 42,235,199 To 274,214
  215.    Set Zone 46,277,199 To 309,214
  216.    Set Zone 43,216,199 To 232,214
  217.    Set Zone 44,234,80 To 309,94
  218.    Set Zone 45,235,176 To 308,189
  219. End Proc
  220. '
  221. Procedure EINLESEN
  222.    Restore LEVEL*1
  223.    Boom 
  224.    Read LEVEL
  225.    For I=1 To 11
  226.       ZEIGEFLAG(I)=0
  227.       Read ANZAHL(I)
  228.       If ANZAHL(I)>0
  229.          ZEIGEFLAG(I)=-1
  230.       End If 
  231.    Next I
  232.    Ink 20
  233.    Screen Swap : Bar 290,60 To 308,72
  234.    Screen Swap : Bar 290,60 To 308,72
  235.    Screen Swap : Wait Vbl : Ink 0,20 : Text 290,69,Mid$(Str$(LEVEL),2,2)
  236.    Screen Swap : Wait Vbl : Ink 0,20 : Text 290,69,Mid$(Str$(LEVEL),2,2)
  237.    AUSGABE
  238.    1 Data 1,0,1,1,1,1,1,1,0,0,0,0,0
  239.    2 Data 2,1,2,1,1,2,0,0,0,0,0,2,0
  240.    3 Data 3,0,1,1,2,1,1,0,1,0,1,0,0
  241.    4 Data 4,0,1,2,2,1,1,1,0,0,0,0,0
  242.    5 Data 5,0,2,1,1,2,0,0,1,1,2,1,0
  243.    6 Data 6,1,2,1,1,2,0,0,1,1,0,1,0
  244.    7 Data 7,0,1,2,2,1,1,1,1,1,0,0,0
  245.    8 Data 8,1,1,1,1,2,1,2,1,0,1,0,0
  246.    9 Data 9,0,2,2,1,2,1,2,0,1,0,0,0
  247.    10 Data 10,1,2,2,1,1,1,1,0,2,1,0,0
  248.    11 Data 11,0,3,2,2,2,1,0,0,1,3,0,0
  249.    12 Data 12,1,3,2,1,2,1,1,0,2,0,0,0
  250.    13 Data 13,1,2,1,2,1,2,0,1,1,2,1,0
  251.    14 Data 14,2,2,2,2,2,0,0,0,0,2,2,0
  252.    15 Data 15,1,1,2,3,1,1,0,2,1,0,1,0
  253.    16 Data 16,1,2,2,1,2,1,2,0,1,1,1,0
  254.    17 Data 17,1,2,1,1,1,1,0,1,2,5,1,0
  255.    18 Data 18,0,1,2,1,2,0,2,2,2,1,1,0
  256.    19 Data 19,0,2,2,2,1,1,0,1,2,1,4,0
  257.    20 Data 20,1,2,1,3,2,2,0,2,0,2,0,0
  258.    21 Data 21,0,2,2,2,2,1,1,2,2,1,3,0
  259.    22 Data 22,1,2,2,3,3,1,1,2,0,2,2,0
  260.    23 Data 23,2,2,3,2,2,2,3,1,2,0,0,0
  261.    24 Data 24,2,2,2,2,2,1,1,2,2,2,2,0
  262.    25 Data 25,1,3,2,2,3,1,1,3,3,1,0,0
  263. End Proc
  264. '
  265. Procedure AUSGABE
  266.    Ink 2,23
  267.    For I=1 To 11
  268.       If ANZAHL(I)>0
  269.          Screen Swap : Wait Vbl : Text -7+(19*I),227,Right$(Str$(ANZAHL(I)),1)
  270.          Screen Swap : Wait Vbl : Text -7+(19*I),227,Right$(Str$(ANZAHL(I)),1)
  271.       End If 
  272.       If ANZAHL(I)=0 and ZEIGEFLAG(I)=-1
  273.          Ink 23
  274.          Screen Swap : Wait Vbl : Bar -9+(19*I),220 To 4+(19*I),229
  275.          Screen Swap : Wait Vbl : Bar -9+(19*I),220 To 4+(19*I),229
  276.          Ink 2,23
  277.       End If 
  278.    Next I
  279. End Proc
  280. '
  281. Procedure NEUER_VERSUCH
  282.    Screen Swap : Wait Vbl : Bob Clear 
  283.    Bob Off 
  284.    Screen Swap : Wait Vbl : Bob Clear : Bob Off 
  285.    NUMMER=0
  286.    FELDER_LOESCHEN
  287. End Proc
  288. '
  289. Procedure WERT_NEHMEN[Z]
  290.    Restore Z*1+1000
  291.    Read NORD(31),OST(31),SUED(31),WEST(31)
  292.    Restore Z*1+2000
  293.    For I=1 To 4
  294.       Read OFFEN(2,I)
  295.       OFFEN(3,I)=0
  296.    Next I
  297.    1031 Data -1,-1,-1,-1
  298.    1032 Data -1,-1,1,1
  299.    1033 Data 1,-1,-1,1
  300.    1034 Data -1,1,1,-1
  301.    1035 Data 1,1,-1,-1
  302.    1036 Data 1,-1,-1,-1
  303.    1037 Data -1,-1,1,-1
  304.    1038 Data -1,-1,-1,1
  305.    1039 Data -1,1,-1,-1
  306.    1040 Data 1,-1,1,-1
  307.    1041 Data -1,1,-1,1
  308.    2031 Data 1,1,1,1
  309.    2032 Data 1,1,0,0
  310.    2033 Data 0,1,1,0
  311.    2034 Data 1,0,0,1
  312.    2035 Data 0,0,1,1
  313.    2036 Data 0,1,1,1
  314.    2037 Data 1,1,0,1
  315.    2038 Data 1,1,1,0
  316.    2039 Data 1,0,1,1
  317.    2040 Data 0,1,0,1
  318.    2041 Data 1,0,1,0
  319. End Proc
  320. '
  321. Procedure PRUEFEN[Z]
  322.    If Z-6>0
  323.       ERLAUBT[GESETZTFLAG(Z-6),SUED(Z-6),NORD(31),Z-6,3,1] : Rem  Nordfeld  
  324.    Else 
  325.       RF=-1
  326.       ERLAUBT[-1,1,NORD(31),RF,3,1] : Rem                  Nordrandfeld    
  327.       If OK=2 and AUS_STREET=0
  328.          Pop Proc
  329.       End If 
  330.    End If 
  331.    '
  332.    If Z+6<31
  333.       ERLAUBT[GESETZTFLAG(Z+6),NORD(Z+6),SUED(31),Z+6,1,3] : Rem  Suedfeld  
  334.    Else 
  335.       RF=-1
  336.       ERLAUBT[-1,1,SUED(31),RF,1,3] : Rem                  Suedrandfeld    
  337.       If OK=2 and AUS_STREET=0
  338.          Pop Proc
  339.       End If 
  340.    End If 
  341.    '
  342.    If Z=1 or Z=7 or Z=13 or Z=19 or Z=25
  343.       RF=-1
  344.       ERLAUBT[-1,1,WEST(31),RF,2,4] : Rem                  Westrandfeld      
  345.       If OK=2 and AUS_STREET=0
  346.          Pop Proc
  347.       End If 
  348.    Else 
  349.       ERLAUBT[GESETZTFLAG(Z-1),OST(Z-1),WEST(31),Z-1,2,4] : Rem westfeld 
  350.    End If 
  351.    '
  352.    If Z=6 or Z=12 or Z=18 or Z=24 or Z=30
  353.       RF=-1
  354.       ERLAUBT[-1,1,OST(31),RF,4,2] : Rem                    Ostrandfeld 
  355.       If OK=2 and AUS_STREET=0
  356.          Pop Proc
  357.       End If 
  358.    Else 
  359.       ERLAUBT[GESETZTFLAG(Z+1),WEST(Z+1),OST(31),Z+1,4,2] : Rem ostfeld
  360.    End If 
  361.    LOESEFLAG=0
  362.    If GEHT=-1
  363.       For I=1 To 4
  364.          OFFEN(1,I)=OFFEN(1,I)+OFFEN(2,I)
  365.       Next I
  366.    End If 
  367. End Proc
  368. '
  369. Procedure ERLAUBT[WEG1,WEG2,WEG3,RF,WEGOFFEN,ANWEG]
  370.    '
  371.    ' --------------------- Erstes Feld:  Rand an Rand *******************   
  372.    If NUMMER=1 and WEG3<>-1 and RF=-1
  373.       GEHT=-1
  374.       RF=0
  375.       OK=0
  376.       Pop Proc
  377.    End If 
  378.    ' ---------------------- NICHT in freie Felder legen ****************
  379.    If WEG1=0 and AUS_STREET=0
  380.       Inc KONTROLLZAEHLER
  381.       If KONTROLLZAEHLER<4
  382.          Pop Proc
  383.       End If 
  384.       ' ------------------- Erstes Feld:  beliebig ins Freie ***********   
  385.       If NUMMER=1
  386.          GEHT=-1
  387.          Pop Proc
  388.       End If 
  389.    End If 
  390.    '
  391.    ' ---------------------- Weg passt an Weg ***************************
  392.    If WEG1=-1 and WEG2=-1 and WEG3=-1 and AUS_STREET=0
  393.       OFFEN(1,WEGOFFEN)=OFFEN(1,WEGOFFEN)-1
  394.       OFFEN(2,ANWEG)=0
  395.       OFFEN(3,WEGOFFEN)=1
  396.       GEHT=-1
  397.       Pop Proc
  398.    End If 
  399.    '
  400.    ' ---------------------- kein Weg passt an kein Weg *****************  
  401.    If WEG1=-1 and WEG2=1 and WEG3=1 and AUS_STREET=0
  402.       Pop Proc
  403.    End If 
  404.    '
  405.    ' ---------------------- letztes Feld legen *************************  
  406.    If AUS_STREET=-1
  407.       If WEG1=-1 and WEG2=-1 and WEG3=-1
  408.          OFFEN(1,WEGOFFEN)=OFFEN(1,WEGOFFEN)-1
  409.          OFFEN(2,ANWEG)=0
  410.          Inc LOESEFLAG
  411.       End If 
  412.       If WEG1=-1 and WEG2=1 and WEG3=1
  413.          Inc LOESEFLAG
  414.       End If 
  415.       If WEG1=0 and WEG3=1
  416.          Inc LOESEFLAG
  417.       End If 
  418.       If LOESEFLAG=4 and OFFEN(1,1)=0 and OFFEN(1,2)=0 and OFFEN(1,3)=0 and OFFEN(1,4)=0
  419.          GEHT=-1
  420.          AUS_STREET=0
  421.          LEVEL=LEVEL+1
  422.          GELOEST=-1
  423.          LOESEFLAG=0
  424.          OK=0
  425.          Pop Proc
  426.       Else 
  427.          OK=2
  428.       End If 
  429.    End If 
  430.    If AUSSTREET=0
  431.       OK=2
  432.    End If 
  433. End Proc
  434. '
  435. Procedure WERT_GEBEN[Z]
  436.    NORD(Z)=NORD(31)
  437.    OST(Z)=OST(31)
  438.    SUED(Z)=SUED(31)
  439.    WEST(Z)=WEST(31)
  440. End Proc
  441. '
  442. Procedure WERTE_ZURUECK[Z]
  443.    NORD(Z)=0
  444.    OST(Z)=0
  445.    SUED(Z)=0
  446.    WEST(Z)=0
  447.    GESETZTFLAG(Z)=0
  448.    KONTROLLZAEHLER=0
  449.    OK=0
  450. End Proc
  451. '
  452. Procedure LOESEN
  453.    AUS_STREET=0
  454.    For I=1 To 11
  455.       LETZTE_ZAHL=LETZTE_ZAHL+ANZAHL(I)
  456.       If I=11 and LETZTE_ZAHL=0
  457.          AUS_STREET=-1
  458.       End If 
  459.       If ANZAHL(I)>0
  460.          Pop Proc
  461.       End If 
  462.    Next I
  463. End Proc
  464. '
  465. Procedure FELDER_LOESCHEN
  466.    For I=1 To 31
  467.       NORD(I)=0
  468.       SUED(I)=0
  469.       WEST(I)=0
  470.       OST(I)=0
  471.       GESETZTFLAG(I)=0
  472.    Next I
  473.    For I=1 To 4
  474.       OFFEN(1,I)=0
  475.    Next I
  476. End Proc
  477. '
  478. Procedure ZULETZT_ERNEUT[ENTFERNT,STREET]
  479.    Screen Swap : DRUECKEN[29,19,216,232,198,214]
  480.    Screen Swap : DRUECKEN[29,19,216,232,198,214]
  481.    Shoot 
  482.    Screen Swap : Wait Vbl : Bob Clear 
  483.    Bob Off NUMMER : Bob Draw 
  484.    Screen Swap : Wait Vbl : Bob Clear : Bob Draw 
  485.    If NUMMER>0
  486.       NUMMER=NUMMER-1
  487.    End If 
  488.    NORD(ENTFERNT)=0
  489.    SUED(ENTFERNT)=0
  490.    WEST(ENTFERNT)=0
  491.    OST(ENTFERNT)=0
  492.    GESETZTFLAG(ENTFERNT)=0
  493.    ANZAHL(STREET)=ANZAHL(STREET)+1
  494.    For I=1 To 4
  495.       OFFEN(1,I)=OFFEN(1,I)+OFFEN(3,I)-OFFEN(2,I)
  496.    Next I
  497.    AUSGABE
  498.    Screen Swap : DRUECKEN[19,29,216,232,198,214]
  499.    Screen Swap : DRUECKEN[19,29,216,232,198,214]
  500. End Proc
  501. '
  502. Procedure NOCHMAL_VON_VORN
  503.    Screen Swap : DRUECKEN[29,19,234,274,198,214]
  504.    Screen Swap : DRUECKEN[29,19,234,274,198,214]
  505.    Shoot 
  506.    NEUER_VERSUCH
  507.    Restore LEVEL*1
  508.    EINLESEN
  509.    Screen Swap : DRUECKEN[19,29,234,274,198,214]
  510.    Screen Swap : DRUECKEN[19,29,234,274,198,214]
  511. End Proc
  512. '
  513. Procedure PASSWORD
  514.    Screen Swap : DRUECKEN[29,19,233,309,79,95]
  515.    Screen Swap : DRUECKEN[29,19,233,309,79,95]
  516.    '
  517.    EINGABE
  518.    EINGABE$=Param$
  519.    LOSUNG[EINGABE$]
  520.    DUMM=Param
  521.    '
  522.    Screen Swap : DRUECKEN[19,29,233,309,79,95]
  523.    Screen Swap : DRUECKEN[19,29,233,309,79,95]
  524. End Proc[DUMM]
  525. '
  526. Procedure EINGABE
  527.    Ink 20
  528.    Screen Swap : Bar 234,100 To 307,114
  529.    Screen Swap : Bar 234,100 To 307,114
  530.    Locate 29,13 : Ink 1
  531.    Screen Swap : Draw 235,104 To 235,110 : Flash 1,"(007,10)(fa0,10)"
  532.    Screen Swap : Draw 235,104 To 235,110 : Flash 1,"(007,10)(fa0,10)"
  533.    Ink 3,20
  534.    Clear Key 
  535.    SCHREIBEN=0
  536.    A$=""
  537.    EINGABE$=""
  538.    Repeat 
  539.       WARTE:
  540.       A$=Inkey$
  541.       A$=Upper$(A$)
  542.       If A$="" Then Goto WARTE
  543.       If Asc(A$)<>13 and Asc(A$)<>8 and SCHREIBEN<8
  544.          EINGABE$=EINGABE$+A$
  545.          Inc SCHREIBEN
  546.          If SCHREIBEN=8
  547.             Bell 
  548.          End If 
  549.          P=231+(SCHREIBEN*8)
  550.          Screen Swap : Text P,110,A$
  551.          Screen Swap : Text P,110,A$
  552.       End If 
  553.       Exit If A$=Chr$(13)
  554.       If Asc(A$)=8 and SCHREIBEN>0
  555.          Screen Swap : Text P,110," "
  556.          Screen Swap : Text P,110," "
  557.          Dec SCHREIBEN
  558.          P=231+(SCHREIBEN*8)
  559.          EINGABE$=Mid$(EINGABE$,0,SCHREIBEN)
  560.       End If 
  561.    Until A$=Chr$(13)
  562.    Ink 23
  563.    Screen Swap : Bar 234,100 To 307,114
  564.    Screen Swap : Bar 234,100 To 307,114
  565.    Flash Off 
  566.    PASSEN=-1
  567. End Proc[EINGABE$]
  568. '
  569. Procedure LOSUNG[EINGABE$]
  570.    If PASSEN=0
  571.       Restore LEVEL*1+500
  572.       Read SCHLUESSEL$
  573.    Else 
  574.       For I=501 To 501+(MENGE-1)
  575.          Restore I*1
  576.          Read SCHLUESSEL$,DUMMDUMM
  577.          If SCHLUESSEL$=EINGABE$
  578.             For I=1 To 11
  579.                Ink 23
  580.                Screen Swap : Wait Vbl : Bar -9+(19*I),220 To 4+(19*I),229
  581.                Screen Swap : Wait Vbl : Bar -9+(19*I),220 To 4+(19*I),229
  582.             Next I
  583.             DUMMY=-1
  584.             LEVEL=DUMMDUMM
  585.             Goto STUFE
  586.          End If 
  587.          If I=501+(MENGE-1)
  588.             SCHLUESSEL$=" FALSCH "
  589.          End If 
  590.       Next I
  591.    End If 
  592.    STUFE:
  593.    Ink 23
  594.    Screen Swap : Bar 234,100 To 307,114
  595.    Screen Swap : Bar 234,100 To 307,114
  596.    Ink 2,23
  597.    Screen Swap : Text 239,110,SCHLUESSEL$
  598.    Screen Swap : Text 239,110,SCHLUESSEL$
  599.    PASSEN=0
  600.    501 Data "ANFAENGE",1
  601.    502 Data "SYNONYME",2
  602.    503 Data "INFERIOR",3
  603.    504 Data "FILIGRAN",4
  604.    505 Data "COQUILLE",5
  605.    506 Data "MANDARIN",6
  606.    507 Data "TRIPODIE",7
  607.    508 Data "KATATHYM",8
  608.    509 Data "EPISTASE",9
  609.    510 Data "HARPYIEN",10
  610.    511 Data "BELGNETS",11
  611.    512 Data "POLYAMID",12
  612.    513 Data "NAVICULA",13
  613.    514 Data "GAYEMENT",14
  614.    515 Data "OMELETTE",15
  615.    516 Data "LECTURER",16
  616.    517 Data "ZODIAKUS",17
  617.    518 Data "IPSATION",18
  618.    519 Data "VIGNETTE",19
  619.    520 Data "RELAXANS",20
  620.    521 Data "YOHIMBIN",21
  621.    522 Data "DUCHESSE",22
  622.    523 Data "JAKONETT",23
  623.    524 Data "UNDATION",24
  624.    525 Data "QUIRINAL",25
  625. End Proc[DUMMY]
  626. '
  627. Procedure GRATULATION
  628.    Pen 2 : Paper 26
  629.    Screen Swap : Wait Vbl 
  630.    Locate 0,0 : Print "    Gl�ckwunsch!!  Vorz�glich gel�st    "
  631.    Screen Swap : Wait Vbl 
  632.    Locate 0,0 : Print "    Gl�ckwunsch!!  Vorz�glich gel�st    "
  633.    Wait 100
  634.    Paper 26
  635.    Screen Swap : Wait Vbl : Locate 0,0 : Print Space$(40)
  636.    Screen Swap : Wait Vbl : Locate 0,0 : Print Space$(40)
  637. End Proc
  638. '
  639. Procedure SICHERHEITSABFRAGE
  640.    Screen Swap : DRUECKEN[29,19,276,309,198,214]
  641.    Screen Swap : DRUECKEN[29,19,276,309,198,214]
  642.    Screen Open 0,640,48,16,Hires
  643.    Curs Off 
  644.    Fade 1,$0,$D07
  645.    Shoot 
  646.    Reserve Zone 2
  647.    X1$=Zone$("   JA   ",1)
  648.    X2$=Zone$(" Zur�ck ",2)
  649.    Locate 0,1
  650.    Centre " Soll das Programm wirklich beendet werden "
  651.    Locate 0,4
  652.    Centre " ??????? "
  653.    Locate 20,4
  654.    Print Border$(X1$,1)
  655.    Locate 52,4
  656.    Print Border$(X2$,1)
  657.    Repeat 
  658.       Z=Mouse Zone
  659.    Until Z>0 and Mouse Key
  660.    Reset Zone 
  661.    Screen Close 0
  662.    Bell 
  663.    Screen Swap : DRUECKEN[19,29,276,309,198,214]
  664.    Screen Swap : DRUECKEN[19,29,276,309,198,214]
  665. End Proc[Z]
  666. '
  667. Procedure DRUECKEN[F1,F2,W1,W2,H1,H2]
  668.    Ink F1
  669.    Draw W1,H1 To W1,H2-1
  670.    Draw W1,H1 To W2,H1
  671.    Ink F2
  672.    Draw W1,H2 To W2,H2
  673.    Draw W2,H1+1 To W2,H2
  674. End Proc
  675. '
  676. Procedure INFO
  677.    Bell 
  678.    Screen Swap : DRUECKEN[29,19,233,309,174,190]
  679.    Screen Swap : DRUECKEN[29,19,233,309,174,190]
  680.    Screen Open 0,640,256,16,Hires : Fade 1,$0,$0
  681.    Reserve Zone 1
  682.    Cls 0 : Curs Off : Flash Off 
  683.    Colour 3,$FB2
  684.    Pen 3 : Cmove ,3
  685.    Print "KREUZWEG"; : Paper 0 : Print " ist ein kleines Logikspiel, in dem es darum geht, GESCHLOSSENE Systeme aus den vorgegebenen Wegteilen zu finden."
  686.    Print : Print "Ich denke, die wenigen Funktionen erkl�ren sich von selbst, so da� ich mir hier die M�he sparen kann, sie einzeln zu erl�utern. Das gesamte Game hat 25 LEVEL,  die jedoch nie das ganze Spielfeld ausnutzen (max. 20 Felder)."
  687.    Paper 6 : Cmove ,4
  688.    Centre "Dieses Programm ist Freeware." : Cmove ,2
  689.    Paper 0 : Centre "Es darf allerdings auf keiner Disk erscheinen, die teurer als 5,- DM ist."
  690.    Cmove ,1 : Centre "Au�erdem d�rfen Name und Copyrightvermerk nicht entfernt werden."
  691.    Cmove ,2 : Centre "Anregungen, Erweiterungen, Bug-Report senden an:"
  692.    Cmove ,2 : Paper 6 : Centre " Delf Schl�ter, Siebenplaneten 24, 4630 BOCHUM 7 "
  693.    Cmove ,1 : Centre " ï¿½ 1992 in Bochum "
  694.    Paper 14 : Cmove ,3 : Centre Border$(Zone$("ZUR�CK",1),2)
  695.    Repeat 
  696.       Z=Mouse Zone
  697.    Until Z=1 and Mouse Key
  698.    Bell 
  699.    Reset Zone 
  700.    Screen Close 0
  701.    Screen Swap : DRUECKEN[19,29,233,309,174,190]
  702.    Screen Swap : DRUECKEN[19,29,233,309,174,190]
  703. End Proc
  704. '
  705. '